package vip.liux.backend.application.service.account.dtos;

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import lombok.EqualsAndHashCode;
import vip.liux.backend.infrastructure.ExtensibleObject;

@Data
@EqualsAndHashCode(callSuper = true)
public class RegisterDto extends ExtensibleObject {

    @NotBlank
    private String username;

    @NotBlank
    @Email
    private String emailAddress;

    @NotBlank
    @Pattern(regexp = "^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[@#$%^&+=]).{8,}$", message = "Password must be at least 8 characters long and include a number, a letter, and a special character.")
    private String password;

    @NotBlank
    private String appName;

    private String returnUrl;

    private String returnHash;
}
